<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class a_fornecedor extends CI_Controller {
    private $sessao = "";

    function __construct(){
        parent::__construct();
        $this->load->model("FornecedorModel");
        $this->load->model("Log");
        $this->load->helper("auth");
        $this->load->helper("mail");
       
    }

   function legal(){
        redirect("home");
   }

    public function index($idFornecedor = "", $mensagem = "")
    {
        if($idFornecedor == "") show_error("Você precisa escolher um fornecedor");
        if (is_numeric($idFornecedor)){
            echo "testee";
            $fornecedor = $this->FornecedorModel->getFornecedor($idFornecedor);
        }
        else
            $fornecedor = $this->FornecedorModel->getFornecedorLink($idFornecedor);

        if( $fornecedor == false )
                show_error("Fornecedor Inexistente");

        if($mensagem == "sucesso") $mensagem = "\nOperação realizada com Sucesso!\n";

        $this->log->inserir(tipo_usuario(), id_tipo_usuario(), "visitou perfil", "fornecedor", $idFornecedor);

        $dados = array(
            "titulo" => "Perfil do Fornecedor",
            "fornecedor" => $fornecedor,
            "mensagem" => $mensagem
            );

        $main = array(
            "dados" => $dados,
            "link" => "all/a_perfil_fornecedor_view",
            );

        $this->load->view("template", $main);
    }

    public function cadastro_previo(){

        $this->load->helper("form");
        $this->load->library("form_validation");

        //INICIO CAPTCHA
        $this->load->helper('captcha');

        $vals = array(
            'img_path' => 'captcha/',
            'img_url' => base_url().'captcha/',
            'img_width' => 200,
            'img_height' => 60,
            'expiration' => 900
            );
        $cap = create_captcha($vals);

        $data = array(
            'captcha_time' => $cap['time'],
            'ip_address' => $this->input->ip_address(),
            'word' => $cap['word']
            );

        $query = $this->db->insert_string('captcha', $data);
        $this->db->query($query);
        // FIM CAPTCHA

        $dados = array(
            "titulo" => "Cadastro Prévio",
            "erro" => "",
            "cap" => $cap,
            "captcha_fail" => ""
            );

        $main = array(
            "dados" => $dados,
            "link" => "all/a_cad_previo_fornecedor_view",
            );

        //Validação dos campos
        $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[4]');
        $this->form_validation->set_rules('sobrenome', 'Sobrenome', 'required|min_length[4]');
        $this->form_validation->set_rules('razaosocial', 'Raz&atilde;o Social', 'required');
        $this->form_validation->set_rules('cnpj', 'CNPJ', 'required|numeric|callback_cnpj_check');
        $this->form_validation->set_rules('email', 'E-mail', 'required|valid_email|callback_email_check');
        $this->form_validation->set_rules('telefone', 'Telefone', 'numeric');
        $this->form_validation->set_rules('website', 'Website');
        $this->form_validation->set_rules('mensagem', 'Mensagem');

        if ($this->form_validation->run() == false) :
            $this->load->view('template', $main);

        else :
            $expiration = time()-900;
             // Then see if a captcha exists:
            $sql = "SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND captcha_time > ?";
            $binds = array($_POST['captcha'], $this->input->ip_address(), $expiration);
            $query = $this->db->query($sql, $binds);
            $row = $query->row();

            if ($row->count == 0){
                $dados["captcha_fail"] = "Você deve escrever os caracteres que aparecem na imagem";
                $main['dados'] = $dados;
                $this->load->view('template', $main);
            }
            //FIM VERIFICACAO CAPTCHA
            else{
                $campos = array(
                    "nome" => $this->input->post("nome"),
                    "sobrenome" => $this->input->post("sobrenome"),
                    "razaoSocial" => $this->input->post("razaosocial"),
                    "telefone" => $this->input->post("telefone"),
                    "cnpj" => $this->input->post("cnpj"),
                    "email" => $this->input->post("email"),
                    "website" => $this->input->post("website"),
                    "assunto" => $this->input->post("mensagem"),
                );
   
                emailCadastroPrevioFornecedor($campos);

                redirect("home/index/cadastro_previo_fornecedor");
            }
        endif;

    }

    public function cadastrar($codigo = ""){

        if ($codigo == "") show_404 ();

        $this->load->helper("form");
        $this->load->helper("url");
        $this->load->library("form_validation");

        $res = $this->db->get("estados");

        if( $res->num_rows() > 0 ) :
            $estados = "";
            foreach($res->result() as $estado) :
                $estados .= "<option value=\"$estado->abrev_uf\" ". set_select("estado", $estado->abrev_uf). ">$estado->nm_uf</option>\n";
            endforeach;

        endif;

        $dados = array(
            "titulo" => "Cadastro de Fornecedores",
            "estados" => $estados,
            "codigo" => $codigo,
            "erro" => ""
            );

        $main = array(
            "dados" => $dados,
            "link" => "all/a_cad_fornecedor_view",
            );

        //uma hora de validade
        if (time()-3600 > ($codigo/39)-3123)
            show_error("Seu c&oacute;digo expirou. Tente adquirir um novo c&oacute;digo");


        //Validação dos campos
        $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[4]');
        $this->form_validation->set_rules('sobrenome', 'Sobrenome', 'required|min_length[4]');
        $this->form_validation->set_rules('razaosocial', 'Raz&atilde;o Social', 'required');
        $this->form_validation->set_rules('cnpj', 'CNPJ', 'required|numeric|callback_cnpj_check');
        $this->form_validation->set_rules('email', 'E-mail', 'required|valid_email|callback_email_check');
        $this->form_validation->set_rules('website', 'Website');
        $this->form_validation->set_rules('telefone', 'Telefone', 'required|numeric');
        $this->form_validation->set_rules('pais', 'Pa&iacute;s', 'required');
        $this->form_validation->set_rules('cidade', 'Cidade', 'required');
        $this->form_validation->set_rules('estado', 'Estado', 'required');
        $this->form_validation->set_rules('senha', 'Senha', 'required|md5');
        $this->form_validation->set_rules('senha2', 'Confirmar senha', 'required|matches[senha]');
        $this->form_validation->set_rules('fax', 'Fax', 'numeric');
        $this->form_validation->set_rules('celular', 'Celular', 'numeric');
        $this->form_validation->set_rules('endereco', 'Endereco', 'required');
        $this->form_validation->set_rules('numero', 'Numero', 'required');
        $this->form_validation->set_rules('complemento', 'Complemento');
        $this->form_validation->set_rules('cep', 'CEP', 'require|min_lenght[8]');

        if ($this->form_validation->run() == false) :
            $this->load->view('template', $main);

        else :
            $dir = './fotos/fornecedor/';
            $foto = $dir .'fornecedor_'.$this->input->post('email').'.jpg';
            $config['upload_path'] = $dir;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size']	= '100';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';
            $config['file_name']  = $foto;

            $this->load->library('upload', $config);
            //$this->input->

            if ( ! $this->upload->do_upload()){
                $dados["erro"] = $this->upload->display_errors();
                $main['dados'] = $dados;
                $this->load->view('template', $main);
            }           
            else{
                //renomeia a foto para fornecedor_id
                $campos = array(
                    "nome" => $this->input->post("nome"),
                    "sobrenome" => $this->input->post("sobrenome"),
                    "razaoSocial" => $this->input->post("razaosocial"),
                    "cnpj" => $this->input->post("cnpj"),
                    "email" => $this->input->post("email"),
                    "website" => $this->input->post("website"),
                    "telefone" => $this->input->post("telefone"),
                    "pais" => $this->input->post("pais"),
                    "cidade" => $this->input->post("cidade"),
                    "estado" => $this->input->post("estado"),
                    "fax" => $this->input->post("fax"),
                    "celular" => $this->input->post("celular"),
                    "senha" => $this->input->post("senha"),
                    "endereco" => $this->input->post("endereco"),
                    "numero" => $this->input->post("numero"),
                    "complemento" => $this->input->post("complemento"),
                    "foto" => $foto,
                    "dataCadastro" => timestamp()
                );

                $this->FornecedorModel->inserir($campos);

                $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "se cadastrou", "fornecedor", $idInserido);
                redirect("home/index/sucesso");
           }
        endif;
    }

    function email_check($str){
        if ($this->FornecedorModel->getFornecedorEmail($str) != false) :
            $this->form_validation->set_message('email_check', 'Já há um cadastro com este e-mail.');
            return FALSE;
        else :
            return TRUE;
        endif;
    }

    function cnpj_check($str){
        if ($this->FornecedorModel->getFornecedorCnpj($str) != false) :
            $this->form_validation->set_message('cnpj_check', 'Já há um cadastro com este CNPJ.');
            return FALSE;

        else :
            return TRUE;

        endif;
    }

}